home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs17.d81
/
war.sda
/
WAR.MAIN
(
.txt
)
< prev
Wrap
Commodore BASIC
|
2009-10-10
|
5KB
|
143 lines
5 POKE52,32:POKE56,32:CLR
11 LF$="B.WAR SPRITES4":AD=14592:GOSUB20
13 LF$="WAR CELLS":AD=32062:GOSUB20
15 LF$="SPLIT SCREEN.O":AD=853:GOSUB20
17 LF$="MEGADATA":AD=49152:GOSUB20
18 GOTO 93
20 H%=AD/256:L%=AD-H%*256
25 OPEN1,8,1,LF$+",P,R":POKE185,0:POKE780,0:POKE781,L%:POKE782,H%:SYS65493:CLOSE1:RETURN
93 :
100 MS%=135:POKE53247,1
101 DIMS(1),A(1),F(1),X(1),Y(1):POKE851,1:SYS853:V=RND(-TI):YY=1
102 GOSUB1001:S(0)=0:S(1)=0:PL=0:S0=0:S1=0:FORZZ=1TOYY:A(0)=0:A(1)=0:F(0)=0:F(1)=0
200 FY$=STR$(INT(RND(1)*MS%)+1):FY$="S"+RIGHT$(FY$,LEN(FY$)-1):IFFY$=FZ$THEN20
205 FZ$=FY$:POKE16589,0:POKE16591,0:GOSUB1540:IFEN<>0THEN200
206 F1%=(FZ$="S123"ORFZ$="S119"):F2%=(FZ$="S124"ORFZ$="S120")
210 YU%=0:IFF1%THENPOKEV+14,168:POKEV+15,134:POKE2047,228
215 X%=INT(RND(1)*9)*(INT(RND(0)*2)*2-1)*16:IFW%=0THENX%=0
217 PRINT"[147]":SYS49152:PRINT"[144]WIND: ";
220 IFX%=0THEN222
221 FORJ=1TO9-ABS(X%/16):PRINTCHR$(SGN(X%)+61);:NEXT
222 PRINTTAB(20)"BATTLE:"ZZ"/"YY""
230 PL=1-PL:IF(S(1)-S1)>(S(0)-S0)THENPL=1
235 IF(S(0)-S0)>(S(1)-S1)THENPL=0
236 S0=S(0):S1=S(1)
237 IFZR%=1THENZR%=0:PL=1-PL
240 PRINT"";:POKE646,PL:PRINT"PLAYER1 :"S(1);TAB(20);
250 POKE646,1-PL:PRINT"PLAYER2 :"S(0)
260 POKEV+21,15:POKE2042,241:POKE2043,240:POKEV+39,0:POKEV+40,11
270 POKEV+41,0:POKEV+42,11:POKE2040,248:POKE2041,248
280 IFF1%ORF2%THENPOKEV+28,128:IFF1%THENPOKE2047,228
281 POKEV+46,0:IFF2%THENPOKE2047,229
282 IFYU%=0AND(F1%ORF2%)THENPOKEV+21,143
290 Y(0)=PEEK(16584)*16+45:Y(1)=PEEK(16586)*16+45:BY(0)=Y(0):BY(1)=Y(1)
300 X(0)=PEEK(16585)*16+20:X(1)=PEEK(16587)*16+20
310 FORJ=0TO1:POKEV+J*2+4,X(J)AND255:BX(J)=X(J)+((J=0)*2+1)*6
320 POKEV+J*2,BX(J)AND255:POKEV+J*2+1,Y(J)+3:POKEV+J*2+5,Y(J):NEXTJ:POKE851,0
330 POKEV+16,INT(X(0)/256)*4+INT(X(1)/256)*8+INT(BX(0)/256)+INT(BX(1)/256)*2
340 IFF2%THENPOKEV+16,PEEK(V+16)+128:POKEV+14,0:POKEV+15,146
402 POKE53265,27:GOSUB1200:POKE53232,203:POKE53233,0:A=A(PL)*(null)/180
412 F=INT(F(PL)*(20/13.8)+.5):POKE53206+PL,COS(A)*F:POKE53208+PL,(PL=0)*-1
415 POKE53214+PL,SIN(A)*F:POKE53216+PL,1:POKE53218,ABS(X%):POKE53219,1-(SGN(X%)/2+.5)
417 POKE53220,PL:POKE53227,0:POKE53200,PEEK(V):POKE53201,PEEK(V+2):POKE53202,0
418 POKE53203,0:POKE53204,PEEK(V+16)AND1:POKE53205,(PEEK(V+16)AND2)/2
419 POKE53210,PEEK(V+1):POKE53211,PEEK(V+3):POKE53212,0:POKE53213,0
420 FORJ=1TO10:A=PEEK(V+31):A=PEEK(V+30):NEXT
440 POKE53234,0:POKE53235,64:POKES+18,129:POKES+18,128:POKES+11,17
460 SYS49486:POKES+11,16:SC=PEEK(53226)
462 ONPEEK(53229)GOTO600,480,490,230
480 GOSUB800:GOTO700
490 GOSUB800:GOTO720
600 POKES+4,129:POKES+4,128:POKEV+39+PL,1:FORJ=248TO252:POKE2040+PL,J
610 FORI=1TO10:NEXTI,J:A=PEEK(V+30):GOSUB1350
615 FORJ=251TO248STEP-1:POKE2040+PL,J:FORI=1TO10:NEXTI,J:POKEV+39+PL,11*PL
620 IF(AAND((PL+1)*5))=((PL+1)*5)THENSC=1:GOTO700
630 IF(AAND(PL*-3+9))=PL*-3+9THENSC=2:GOTO720
635 ZR%=0:IF(AAND(129+PL))=129+PLTHENSC=2:ZR%=1:GOTO720
640 GOTO230
700 FORJ=245-PL*3TO247-PL*3:POKE2042+PL,J:FORI=1TO30:NEXTI,J
710 S(1-PL)=S(1-PL)+SC:GOTO900
720 FORJ=242+PL*3TO244+PL*3:POKE2043-PL,J:FORI=1TO30:NEXTI,J
730 S(PL)=S(PL)+SC:IFZR%=1THENYU%=1:GOSUB1630:GOTO230
740 GOTO900
800 POKES+4,129:POKES+4,128:POKEV+39+PL,1:FORJ=248TO252:POKE2040+PL,J
810 FORI=1TO10:NEXTI,J:POKE53280,1:GOSUB1350:POKE53280,0
815 FORJ=251TO248STEP-1:POKE2040+PL,J:FORI=1TO10:NEXTI,J:POKEV+39+PL,11*PL:RETURN
900 NEXTZZ
902 PRINT"PLAYER1 :"S(1);TAB(20);"PLAYER2 :"S(0)
903 IFS(0)<>S(1)THENGOSUB1700
910 FORJ=1TO2000:NEXT:GOTO102
1001 S=54272:FORJ=0TO24:POKEJ+S,0:NEXT:POKES+24,15:POKES+6,252:POKES+1,25
1002 POKES+15,25:POKES+20,249:POKES+13,240:PL=0:POKE851,1
1010 V=53248:POKE53280,0:POKE53281,6:POKEV+16,0:POKEV+21,0:POKEV+37,8:POKEV+38,7
1100 PRINT"[147] WAR![146] BY MARK DEMBROWSKI - 1991"
1110 PRINTTAB(11)"PRESS FIRE TO PLAY"
1120 IFPEEK(56320)<>111ANDPEEK(56321)<>239THEN1120
1130 POKEV+21,0:PRINT"[147]# BATTLES TO PLAY? 1"
1132 IFPEEK(56320)=111ORPEEK(56321)=239THEN1132
1133 PRINT""SPC(20)" [157][157][157]"YY
1134 IFPEEK(56321)=254ORPEEK(56320)=126THENYY=YY+1:IFYY=21THENYY=20
1135 IFPEEK(56321)=253ORPEEK(56320)=125THENYY=YY-1:IFYY=0THENYY=1
1136 IFPEEK(56321)=239ORPEEK(56320)=111THEN1139
1138 GOTO1133
1139 GOSUB1600:RETURN
1200 POKES+8,64:POKES+7,0:PO=1:SR=1
1201 PRINT"[144]ANGLE: SPEED: M/S":POKE1872,46:POKE56144,0
1206 POKES+11,17:POKES+11,16
1207 POKE(SR-1)*11+1950+(PO-1),30
1210 AN$=RIGHT$("0"+RIGHT$(STR$(A(PL)),LEN(STR$(A(PL)))-1),2)
1220 FO$=RIGHT$("00"+RIGHT$(STR$(F(PL)),LEN(STR$(F(PL)))-1),3)
1230 PRINT"[145][144]ANGLE:"AN$" SPEED:"FO$
1240 FB=PEEK(56320+PL):JS=15-(FBAND15):FB=FBAND16
1250 IFFB=16ANDJS=0THEN1240
1260 IFJS<>8THEN1270
1261 POKE(SR-1)*11+1950+(PO-1),32
1262 PO=PO+1:IFPO=2+SRTHENPO=1:SR=3-SR
1266 GOTO1206
1270 IFJS<>4THEN1280
1271 POKE(SR-1)*11+1950+(PO-1),32
1272 PO=PO-1:IFPO=0THENSR=3-SR:PO=1+SR
1275 GOTO1206
1280 IFJS<>1ORSR<>1THEN1290
1282 A(PL)=A(PL)+(2-PO)*9+1:IFA(PL)>90THENA(PL)=90
1284 GOTO1206
1290 IFJS<>1ORSR<>2THEN1300
1292 F(PL)=F(PL)+INT(10^(3-PO)):IFF(PL)>140THENF(PL)=140
1294 GOTO1206
1300 IFJS<>2ORSR<>1THEN1310
1302 A(PL)=A(PL)-((2-PO)*9+1):IFA(PL)<0THENA(PL)=0
1304 GOTO1206
1310 IFJS<>2ORSR<>2THEN1320
1312 F(PL)=F(PL)-INT(10^(3-PO)):IFF(PL)<0THENF(PL)=0
1314 GOTO1206
1320 IFFB=0ANDJS=0THENA(PL)=VAL(AN$):F(PL)=VAL(FO$):GOTO1340
1330 GOTO1240
1340 PRINT" ":RETURN
1350 EX=PEEK(PL*2+V):EY=PEEK(PL*2+V+1):IF(PEEK(V+16)AND(PL+1))=0THEN1390
1380 EX=EX+256:IF(EX/2)=INT(EX/2)THENEX=EX-1:GOTO1440
1390 IF(EX/2)=INT(EX/2)THENEX=EX+1
1440 ER=INT((EY-42)/8):YE=(EY-42)AND7:EC=INT((EX-13)/8):XE=(EX-13)AND7
1445 J=0:BY=INT(ER/2)*20+INT(EC/2)+16384:IFPEEK(BY)>166ANDPEEK(BY)<190THENJ=1
1450 YE=YE-6:IFYE<0THENYE=YEAND7:ER=ER-1
1460 XE=XE-6:IFXE<0THENXE=XEAND7:EC=EC-1
1470 BY=8192+ER*320+EC*8+YE:XE=(2^(7-XE))*(3/2)
1480 POKE52000,BYAND255:POKE52001,BY/256:POKE52006,XE
1490 POKE52003,ERAND255:POKE52004,ECAND255:POKE52005,YE
1495 IFJ=0THENSYS50300
1500 RETURN
1540 POKE851,1
1545 POKE53265,11:POKE780,LEN(FZ$):POKE781,60:POKE782,3:FORJ=1TOLEN(FZ$)
1550 POKE827+J,ASC(MID$(FZ$,J,1)):NEXT:SYS65469
1560 POKE780,0:POKE781,8:POKE782,0:SYS65466
1580 POKE780,0:POKE781,0:POKE782,64:SYS65493
1590 OPEN15,8,15:INPUT#15,EN:CLOSE15:RETURN
1600 PRINT"[147]PRESS DOWN FOR NO WIND, UP FOR WIND"
1610 IFPEEK(56321)=254ORPEEK(56320)=126THENW%=1:RETURN
1620 IFPEEK(56321)=253ORPEEK(56320)=125THENW%=0:RETURN
1625 GOTO1610
1630 POKEV+28,0:POKE2047,253:POKEV+46,1:POKES+11,17:FORJ=PEEK(V+15)TO1STEP-2
1640 POKEV+15,J:POKEV+46,J:POKES+8,196-J/2:NEXT:POKES+11,16:RETURN
1700 IFS(0)>S(1)THEN1710
1705 FORJ=0TO99:POKE646,J:PRINT"PLAYER1":NEXT:RETURN
1710 FORJ=0TO99:POKE646,J:PRINT""SPC(20)"PLAYER2":NEXT:RETURN